Place your camera target at the center of the arc rotation (That's usually where you want the camera to look anyway). Then simply transform the camera's position around the target with a rotation that uses the appropriate axis.
pseudo code:
//some angle & some other angle = only the amount you want the camera to rotate since last frame.
//pitch
position = (Rotate(some angle, cameraRight) * (position - target)) + target;
//yaw, Y-up system
position = (rotateRotate(some other angle, (0,1,0)) * (position - target)) + target;
view = LookAt(position, target, up);
Edit: fixed missing parenthesis