Are you sure wrist 2 rotated, and not whatever potential bracket the tool is mounted to? I’d wager your EOAT is in a different place, if your known TCP is off by 3mm. You could opt to just edit/reteach your TCP to pick up on this new 3 mm degree of rotation if that’s the case.
You can move the robot while it’s completely powered off via the backdrive feature and it still knows where it’s at when it boots up. So I think it unlikely that the encoders are wrong.