Esto se debe a que está intentando configurar column3
a un resultado devuelto, y SQL espera que sea un solo valor (escalar). El motor de SQL se confunde cuando le pasa más de un valor de retorno (¿cuál debería usar?... no asume iterar a través de los resultados). Por lo tanto, si desea actualizar un conjunto de resultados completo, debe crear una subtabla a partir de su consulta y unirse a ella. Su consulta debería parecerse más a esto
UPDATE Table3
SET Column3 = subtable.value
FROM Table3
JOIN (
select t2.column3+t1.column3 as value, t1.id
from table2 t2 with (nolock) join table1 t1
on table2.id=t1.id
where table2.id IN (100,101)
) AS subtable
ON subtable.id = Table3.id
WHERE table3.id IN (100, 101)
Bajo esta suposición de que table3.id coincide con los otros id, tampoco necesita el where table2.id IN ...