No. I do not have your hardware, your bluetooth whatever, or understanding of what your bluetooth thingy sends. I made an edit to cover reading two bytes at a time, given what you showed, but if the unknown communications protocol is any more difficult than that, I haven't a clue what it needs.
Those serial tutorials lay out how to design protocols so they can be parsed, and provide guidance on how to parse things. If you have a good protocol for sending your two integers, it should be straightforward to parse.
When I press (touch down) forward button, number 2 is displayed in serial monitor and the servos work. And when I touch up forward button number 3 is displayed in serial monitor and the servos are stopped. But when I press backward or left or right buttons the numbers are displayed in serial monitor but the servos don't work.
if (BT.available() >1) {
I used your idea in my code but result is the same.
That sounds like you send only one character at time. If you touch down a button marked "forward" and your code receives 2 and 10 seconds later you "touch up" the "forward" button, what is your code supposed to do in the intervening 10 seconds? If it was 1 sec between the signals? If it was 0.001 sec?
Also, the forward and stop only care about the "state2" variable, while the other motions only care about "state". Try printing out the pair:
From what you describe I think reading single bytes should be enough and separating them by pairs into state2 and state seems unnecessary. Maybe you might want to keep a memory of the prior byte and do something interesting based on the pair, but your code doesn't show that use case.
If you are mixing bytes, characters, numbers, and strings, you need to be very careful about the protocols so the arduino can decode what it happening.
I do not understand the need to use them as two integers.
From the sketch you've shown, it looks like it would be better to use the integers one at a time. Send "Forward", and it goes forward, send "Stop Going Forward" and it stops.
It doesn't appear to be a problem with reading two bytes from a bluetooth module, it looks like more of a problem with what do you want to do with your two bytes.