First of all... Never pick up a pup when he misbehaves. Not only are you not doing anything positive or any correction, you also set yourself up to nipping from other dogs. Picking a dog up whenever there's a scuffle is highly anti-productive. And it's not like you can keep picking him up when he grows, what happens then?
He's still very young, and has already displayed such behaviour. IMO, I will get a trainer asap and work with him INDIVIDUALLY, find out more about what sets him off, what he likes, what he dislikes. Once you know him better, and can control him better, then you can implement that training into real life situation.
For example, when my dog was approaching 1 year old, he develops a behaviour where he can be toy possessive with other dogs (never with humans.) Since I'm his parent/owner, I've come to learn how to read his facial expressions, body language, and the situation that surrounds him. In other words, I've taken time to know my dog BETTER. From there, I can start working on the issue, and he hasn't been in any incidents for months.
Take time to get to know your pup better, bond with him, soon you'll be able to figure out how to avoid those situations. And try to have individual sessions instead of group sessions.