Так:
auth = threading.Thread(target=start_mon(start_auth_solo))
Не надо поток запускать.
Вот так попробуйте:
auth = threading.Thread(target=start_mon, args=(start_auth_solo,))
Документация по классу Thread
Надо типа так:
from time import sleep
from threading import Thread
def a(duration):
while True:
print('Я функция а')
sleep(duration)
def b(duration):
while 1:
print('Я функция b')
sleep(duration)
def c(duration):
while 1:
print('Я функция c')
sleep(duration)
def main():
ta = Thread(target=a, args=(1, ))
ta.start()
tb = Thread(target=b, args=(2, ))
tb.start()
tc = Thread(target=c, args=(3, ))
tc.start()
while True:
print('Я главный поток!')
sleep(5)
if __name__ == '__main__':
main()