PLAXIS 2D - getcurveresults for dynamic time analysis

I'm trying to extract total stresses for a dynamic analysis on all my stress points using python. Compared to getting data form the curves manager, this method incredibly slow as the getcurveresults command is executed from the command line incredibly slowly. Is there a way to speed this process up or an alternative approach to directly interact with the curves manager? I want to replicate what I can get from the curves manager with a dynamic time vs stress plot. Code is below.

with open('data.csv', 'w') as f:
    write = csv.writer(f)
    write.writerow(['Stresspoint', 'Phase', 'Step', 'Dynamic Time', 'SigXX', 'SigYY', 'SigXY'])
    # look into all stresspoints, all phases, all steps:
    for node in g_o.CurvePoints.StressPoints[:]:
        for phase in g_o.Phases[:]:
            for step in phase.Steps.value:
                # get the required stresses
                sigXs= g_o.getcurveresults(node,
                                            step,
                                            g_o.ResultTypes.Soil.SigxxT)
                sigYs=g_o.getcurveresults(node,
                                            step,
                                            g_o.ResultTypes.Soil.SigyyT)
                sigXYs=g_o.getcurveresults(node,
                                            step,
                                            g_o.ResultTypes.Soil.Sigxy)

                # make sure step info on time is available, then add it:
                timevalue = "-"
                if hasattr(step, 'Reached'):
                    if hasattr(step.Reached, 'Time'):
                        timevalue = step.Reached.DynamicTime.value

                # creates a data row for values
                write.writerow([node.Number.value,phase.Name.value,int(step.Name.value.replace("Step_", "")),timevalue,sigXs,sigYs,sigXYs])