Hi Zeusophobia.
I have not read through this thread in its entirety so forgive me if this has been said already.
At 3 months your puppy is still very much a baby, considering you got him from a shelter I would also venture a guess that he has not had much socialization so the world to him seems an unfamiliar and scary place.
What I would do is to take him and socialize him like crazy, you want him to meet new people, see new places, and have positive experiences in the world around him.
I also noticed you got him just a few days ago, and I do think you are being a bit harsh. He is a new home, with a new person and I can guarantee he senses your displeasure with him. It's not wrong to suggest that may be making him nervous. A little kindness and compassion will work wonders.
At his age he should not be expected to be ready to defend you, he is the one that should feel safe, secure, and protected.
Work on his confidence. A confident, well socialized dog, raised in a loving and nurturing environment will be protective in ways that "grooming him to defend" never will.