Bueno creo que hay una discrepancia entre la consigna y el código.
Hacer que un servo vaya en un sentido y el otro en el opuesto no significa que uno lo haga servo3 de 180 a 0 180 veces como esta ocurriendo.
Lo que se debe hacer es que se mueve un contador por ejemplo x y el otro se maneja de modo opuesto. i = 180 - x y mientras uno se mueve en un sentido el otro lo hacen el en sentido opuesto.
Así:
void loop() {
//sentido positivo
for (int x = 0; x <= 180; x++){
i = 180-x;
servo2.write(x);
servo3.write(i);
delay(25);
}
//sentido negativo
for (int x = 180; x >= 0; x--){
i = 180-x;
servo2.write(x);
servo3.write(i);
delay(25);
}
}
Esta ha sido mi interpretación de la consigna.