I think you can use OrderedDict to keep the order and use below code to generate the dataframe.
import pandas as pd
from collections import OrderedDict
testdict = OrderedDict()
for i in range(len(list_instr_objects)):
testdict[list_instr_objects[i].name] = (list_instr_objects[i].data)
combined_data = pd.DataFrame(testdict)