It is best to wait til 6 months but the law is the law, so the vet was just doing their job. Three months is waaaay too early though. If the vet thinks the dog is too small, they could possibly sign a waiver for you.
Since your pup is so small and if the vomiting and diarrhea are continuing, you may need to take him to any vet that can see him today. Are his gums pink?
My dog threw up, collapsed and went into shock after some vaccines once.