Hola buenas tardes marax, mirá yo como programador lo que haría en cuanto a lo que estás necesitando es lo siguiente:
1. Crear un script en Python que cumpla la función de guardar en dos variables el contenido binario de los dos ejecutables:
exe1 = open("programa1.exe", "rb").read()
exe2 = open("programa2.exe", "rb").read()
2. Luego se va a convertir las variables exe1 y exe2 a codificación base64:
exeBase64_1 = base64.b64encode(bytes(exe1, 'utf-8'))
exeBase64_2 = base64.b64encode(bytes(exe2, 'utf-8'))
luego esa codificación se va a volcar/guardar en dos archivos de texto:
exeB64_1.txt
exeB64_2.txt
3. Ahora teniendo los dos ejecutables codificados en base64 y guardados en dos archivos de texto, se debe crear un código en Python, luego pasar ese código a ejecutable y el mismo será el exe único, es decir el que el usuario ejecutará para que éste ejecute los otros dos ejecutables.
4. En este exe principal lo que se haría obviamente cuando sea un código antes de pasarlo a exe, es guardar en dos variables los contenidos codificados en base64 de los dos exe:
exeBase64_1 = open("exeB64_1.txt", "r").read()
exeBase64_2 = open("exeB64_2.txt", "r").read()
5. El proceso que tendría que hacer el ejecutable principal cuando sea ejecutado sería el siguiente:
A) Crear en el directorio de archivos temporales del sistema los dos ejecutables, simplemente habría que crear por ejemplo programa1.exe y programa2.exe y el contenido de éstos programas sería el valor de las variables exeBase64_1 y exeBase64_2 pero decodificadas a binario, sería el proceso inverso del que se realizó al comienzo.
B) Como ya están creados los dos ejecutable solamente hay que hacer que el exe principal los ejecute luego de crearlos, aquí varias formas:
os.system()
os.popen()
subprocess.Popen()
Eso es todo!
Saludos