Eh aquí la solución rápida a esa labor (que se torna en problema si no sabemos los pasos indicados)
INSERT INTO tabla1(campo1, campo2, campo3)
(SELECT t2.campo1, t2.campo2, t3.campo3
FROM tabla2 t2)
Como ven el insert se realiza de forma normal hasta el punto en donde tenemos que nombrar los campos, luego puede verse que no eh usado la instrucción VALUES, si no que directamente eh agregado entre parentesis una consulta SELECT.
En el SELECT eh especificado el nombre de los campos que tendran el valor, que en el mismo orden en que declare los campos de la tabla1 se iran llenando, cabe destacar que no importa si los campos tienen el mismo nombre, lo que debemos respetar es el orden, tal como si lo hicieramos agregando el VALUE.