Spawning vehicles server sided already makes a huge difference with vehicle persistence. However that’s still not 100% guaranteed and there are some minor problems with disappearing vehicles.
As far as I’m aware, ESX and QB already spawn vehicles server side in their newest versions (not 100% sure on that).
For everything else, you will need a script that manages “disappearing” vehicles and respawns them if necessary. There are several (free and paid) scripts like that already (just look for “parking” in the release section).
I personally offer a paid one if you want to take a look: AdvancedParking