Why Imam Hussain didn't allow Hazrat Abbas to fight? When Imam Hussain himself fought the battle then why not Hazrat Abbas?

Because Imam Hussain (a) told him that you are the commander of my army and flag bearer, and if you are killed then I will have no army to protect the women and children. So he wanted to keep him as a last resort. In the end he allowed him to fight.

He told him if you must go, then just bring water. Don’t attack them to fight them. Just bring water if you can. This shows that Imam Hussain (a) loved his brother deeply and he didn’t want to lose him.