Counter-protest should not be legal. It invites conflict, and is a breeding ground for violence. To be clear, Nazi and KKK symbols should be--and in some cases are--illegal in this country. All hate group paraphernalia should be illegal, and we should be working everyday to implement laws restricting their display. That being said, nothing good has ever come from thousands of people trying to convince thousands of other people that what they're doing is hurtful and disgusting.
If you want white supremacy, bigotry, and hatred to go away--good luck--then standing in the streets shouting "racists go home" isn't likely to get it done. That's what they do, and they do it because they are too small-minded to think of anything else. Be smarter. Peaceful protest is an extremely useful change agent, and it can produce phenomenal results. Counter-protest is not. It's dangerous, and by definition infringes on the rights of others to peacefully protest.
Imagine if you will, white supremacists showing up at the next peaceful protest for an African American youth slain by the police? It's abhorrent, and I dare not compare this hypothetical to Charlottesville, but it's a scenario that permitting counter-protest allows. It's time to stop having these sanctioned shouting matches, and start devising effective and long-lasting strategies to combat irrational and illogical hatred.