@GraceyManor is right, Overwatch is cleaning up extraneous vehicles that shouldn't exist in the first place. The problem is that the game itself will spawn a vehicle for any sim who needs it in the moment, so they might all end up with cheap cars in their personal inventories. Even if they have cars of their own, they might leave them somewhere around town and not go back to get them, or they might go to a location as a group and leave separately. The vehicles you bought for them might end up stranded in some random parking space on a community lot, or they might get stuck somewhere and then deleted.
Sometimes enough vehicles spawn during the day to impact performance before Overwatch can do its nightly cleanup. NRaas Traffic can prevent this excess, forcing sims that need one to take a taxi instead. The setting is on by default, but to reach it, click on City Hall and select NRaas > Traffic > Routing > Always use taxis for inactives lacking vehicles.
The other setting that may help is disabling performance limos, also under Routing. These limos can apparently appear in the hundreds per day if not prevented. (Also, you can also disable or limit food and ice cream trucks, if you find your town overrun.)
Traffic doesn't really help with the disappearing vehicles though. Some players go around deleting all the parking spaces in town so that sims are forced to put their cars in their inventories instead. Others recolor the cars they want to be able to identify, and they use NRaas MasterController, with MC Cheats added in, to transfer the cars to their proper owners. Click on the ground on the lot that has the car, and select NRaas > MC > Object Add to Inventory; this will add the car to your active family's inventory. From there you can place it in an empty parking space and then into your sim's inventory. Then click on your sim, select NRaas > MC > Basic > Transfer From, then choose the car and the sim who lost it, and the car will be transferred to its rightful owner.
GraceyManor is also right that you should track down sims that are repeatedly getting stuck. Overwatch automatically resets them by default, but you can turn this off with NRaas > Overwatch > Settings > Stuck Check Auto-reset > false. (Leave the stuck check itself on.) Then when you get a notification about a stuck sim, right-click on the thumbnail to center on that sim, and try to figure out why they're stuck. Common problems are a baby animal that can't climb up or down a staircase and doors that are stuck in use. Doors can be reset (the fastest way is to click on the lot and select NRaas > MC > Reset Lot), and lots can be rebuilt to not include stairs.