Maybe if you and your husband are both shy, he doesn't know how to not be shy. A big part of being shy is not knowing others' names and not knowing what to do and say around people.
He might benefit from (short) regular freeplay on the playground or playdates.
>playground
don't force him to do anything. Play with some of the stuff yourself if he won't go on the playground. OR have him sit in your lap and tell him he can get up and play on the playground whenever he wants. If there are other children there...make a big deal out of exchanging names with the kids you are playing with. You can ask name, age, and give them one compliment. or you can point out something "hey look, Jon has cool spiderman shoes. we love spiderman. That's way cool!"
Leave after 1-1.5 hours. On the way home, talk about the other children calling them by name. (Don't say anything he could take as critical of him.) "I really liked that Jon kid - he had a cool red shirt." "I'm glad you had fun with your friend, Amy. It was cool to watch you guys go down the slide. You were really fast!" etc.
>playdate
sometimes kids this age play next to each other instead of with each other. That's OK. Let your son see you playing with the new friend. Call him a friend. Give the friend a compliment.
After the friend leaves say, "I'm so glad your friend Alex came over. That was really fun. It made me giggle when you guys ran in circles. You're a good friend."
The other thing you can do...is put him in a situation where others will give him compliments. Shy people LOVE compliments...even if it makes them seem more shy at the time...it makes them want to be around the person who said nice things about them. and that is the first step to being social.
Be sure to tell or remind your child of the names of adults that you run into, too. (if you know them)...and a compliment. "oh look, it's our neighbor Jenny. What a cute sweater she's wearing! and look - she has blue on her shoes!"
He's learned her name, learned that compliments are always a good thing to say, and doesn't have the spotlight on him, feels no pressure to do anything, had a generally good experience.
After a playdate/playground day....tell dad about it at dinner. "we went to the playground today and played with a kid named Jon. He had a cool red shirt and spiderman shoes. and we went down the slide with Amy."
You're enforcing the idea that remembering names is important...and that Dad is happy that we played with friends.