They are very similar and can often be used as synonyms. Bullshit is vulgar, though, whereas nonsense isn't. You wouldn't use bullshit in a formal situation. Both can mean any kind of information that is untrue or stupid. Bullshit can also be use to show that not only is the information purposely untrue. For example, if one politician is trying to make the other politician look bad by giving untrue information about him, you could call that bullshit.
Nonsense can also be joking, funny behavior that bothers someone. "Tell the children to stop all of that nonsense and do their homework."
Bullshit can also be a verb, but nonsense cannot.