Is it worthy to create a wrapper function like this?
Here's an idea, assuming your logic is really that straightforward:

workflow = [] 
conf = {}
result = []

steps = ((prepare_A, False),
         (prepare_B, False),
         (prepare_C, False),
         (prepare_D, True),
         (prepare_E, False))

for func, need_results in steps:
    res = func(workflow, conf)
    if need_results:
        result.append(res)


If you don't find that approach suitable, I'd suggest making your wrapper a class that encapsulates workflow and conf, and possibly results too.

class PrepareWrapper(object):
    def __init__(self):
        self.workflow = [] 
        self.conf = {}

    def __call__(self, prepare_function):
         return prepare_function(self.workflow, self.conf)        

prepare_wrapper = PrepareWrapper()         
prepare_wrapper(prepare_A)  
prepare_wrapper(prepare_B)  


Or, why not make all the prepare functions methods of this class?