Native speakers mostly use this words as synonymous, but there are few exceptions.
Firstly,"Красивий" is used only to describe physical attraction.But words"гарний/ прекрасний" sometimes can be used as "хороший(good)".For example, we can't say:"Це красива ідея , but "це гарна/прекрасна ідея" will be considered right .Here we actually mean "Це хороша ідея".We can also say "цей комп'ютер прекрасно працює" which is translated "This computer works good/great", not "This computer works beautifully "
Secondly , "прекрасний" is translated as "very beautiful", so "прекрасний"is more beautiful than "гарний/красивий".
For instance:
Це прекрасна жінка - if you tell this everyone will think that the woman is incredibly beautiful, but sentence "це гарна/красива жінка" means that the lady has quite nice appearance