I am going to take a guess and say that you are not a very experienced Python programmer (if I am wrong about that, I apologise), in which case I would warn you that parallel programming is a difficult topic (in particular if you start dealing with how to share data between threads) of which you will need to learn the key principles before having any real chance to doing it successfully. I won't go over those pricinples here, but will at least attempt to answer your concrete question about how to get a return value from a thread.
What you will need is a threadsafe construct that can be shared between threads (in this case between the main thread and the thread where you are executing "B"). The recommended way to do this is with a queue. Essentially "B" writes its result in the queue. You then pick up that result afterwards, as follows:
import queue
import threading
def b(arg1, arg2, q):
q.put(arg1+arg1)
def a(arg1, arg2):
q = queue.Queue() # Define a queue with which to share data between threads.
thread = threading.Thread(target=b, args=(arg1,arg1,q)) # define thread
thread.start() # start thread
thread.join() # wait for thread to finish before continuing
item=q.get() # get the top item from the queue. In this case there will be only one item
q.task_done() # remove the top item from the queue. Generelly this is necessary, in your case you don't need it
return "OK", item
ok, item= a(1,2)
print(item)