I built a ML classifier, it achieved quite good recall (0.8) but the precision is low (0.3). Is there any way to maintain such recall while improving precision?
Precision and recall are a tradeoff. Typically to increase precision for a given model implies lowering recall, though this depends on the precision-recall curve of your model, so you may get lucky.
Generally, if you want higher precision you need to restrict the positive predictions to those with highest certainty in your model, which means predicting fewer positives overall (which, in turn, usually results in lower recall).
If you want to maintain the same level of recall while improving precision, you will need a better classifier.