It totally depends where you get him from. At 3 months...
If you get him from a responsible breeder, he will have started housetraining and training, as well as socializing. Expensive.
If you get him from a non so responsible breeder, he won't be housetrained nor trained, and he will have missed his most important socialization window and might have problems later on. Expensive.
If you get him from a shelter, same as number 2, because if he ended up there it's because he was too much work for the owners. Cheap.
If you get him from a rescue, especially a foster, he should know the basic commands, and be 'partly' housetrained. Cheap.
In all cases, rescues and shelters will be cheaper, but they might not be as well trained as you would do yourself with a puppy. It's ok though, you can train them, it might just be a bit harder. But you will avoid the puppy age, which is pretty difficult and hard sometimes (well not at 3 months, you will still be in it). Some rescues do a wonderful job and really take the time to train the dogs they get before placing them. In this case, an older dog (2-5 years) might be a good idea for you.
I think all in all, it depends on whether you want to train your dog yourself or not, and if you want to have a puppy or an older dog. But older dogs won't necessarily be trained either, so you need to make sure you ask lots of questions before you get your dog.