First of all, I don't think those casts ( (my_robot::GripperState::Request &) ) before the _2 and _3 are necessary.
But, most importantly, I think you're numbering your arguments incorrectly. _2 should be _1 and _3 should be _2. Those underscored arguments refer to the args passed to the boost functor returned by boost::bind; so having 2 and 3 implies that it's receiving 3 arguments and it should ignore the first. When, in reality, ROS only passes it two arguments (the request and the response).