Subtracting the last elements in each raw in two lists
diff = list1;
diff[[All, -1]] = Subtract[list2[[All, -1]], list1[[All, -1]]];
diff
{{1, 2, 3}, {1, 3, -2}, {2, 5, -1}}
Another solution:
list1 // ReplacePart[ {i_, 3} :> Differences[ {list1, list2}, {1, 0} ][[ 1, i, 3]] ]
{{1, 2, 3}, {1, 3, -2}, {2, 5, -1}}
Try this:
Transpose[
Append[Transpose[list1 ][[1 ;; 2]],
Last[Transpose[list2 ] - Transpose[list1 ]]]]
(* {{1, 2, 3}, {1, 3, -2}, {2, 5, -1}} *)
Have fun!