Mewzard gave you great advice. Please don't ever ever pin down your puppy's head - that made me so sad. Puppy's go thru so many different stages in their young lives. Remember that puppies, thru their barks and with their mouths, are trying to tell us things in the only way they know how. As dogs grow, they become masters of our body language, learning our different movements - they study us, they learn what we're about to do when we pick up our keys, put on those tennis shoes, close the blinds, sit in the corner chair, pour a cup of coffee, take a shower, the list goes on and on. But a 3 month old puppy is only just beginning. His only relationhip just a few weeks ago, was with his mom and littermates. He's on his own now, he's still a baby, and he's desperately trying to talk to you, and figure you and your world out, and figure out how to fit in. He's trying to figure out how to tell you he wants to play, how to tell you what games he likes to play, he's hungry, he needs to potty, figure out your rules, etc.
Now - you have to help him learn how to play with you. His littermates all had teeth, and would yelp when he bit too hard. As Mewzard suggested, YELP (and do it LOUD) when he bites your hand. Puppy teeth are like little shark's teeth. But do have lots of toys and chews around that he CAN bite at - and immediately stick one of those in his mouth. If he gets really wild and just can't stop, do put him on a time out for a few seconds. Taking away his biggest resource in the whole world - YOU - is not what he wants. Don't toss him someplace, just when he's too wild, say "enough" (or whatever word you choose), and if he doesn't stop, then calmly take him and put him wherever you choose. Baby gates are wonderful things - perhaps you can place him someplace behind a babygate, he's now separated from the people he loves and wants to be with, noooo...... Ok, now he's quiet, he can try again. It will take a few repititions, but he'll catch on. Keep in mind, he will grow up. He's not aggressive, he's a puppy. They bark, they chew, sometimes they're little monsters - they're babies. They're learning all about the world, and a lot of it is with their mouths. Sound familiar? Yeah, us two-legged ones aren't all that different when you think about it.
Can you possibly get him in a puppy pre-school class or puppy kindergarten class? If so, I highly recommend it. He and you will learn so many basics about puppies, plus he'll be exposed so other puppies his age and allowed play time with them. One big thing is play time with other puppies - and during that time, a huge thing they learn is more bite inhibition. They've been learning this from their littermates and mom, but playing with other dogs teaches them more than we ever can.
Enjoy your little guy - they grow up so quickly. Give him all the love and training and time you possibly can, and he'll reward you with a heart and a love that's bigger than anything you could ever imagine.