You can use this script: (Reference)
# CHANGE LAYER NAMES
networkLayer = QgsProject.instance().mapLayersByName('networkLayerName')[0]
pointLayer = QgsProject.instance().mapLayersByName('pointLayerName')[0]
output_folder = "/path/to/a/folder" # ADD A FOLDER PATH
route_field_index = pointLayer.fields().indexFromName('route')
unique_routes = pointLayer.uniqueValues(route_field_index)
for unique_route in unique_routes:
pointLayer.selectByExpression(f"route='{unique_route}'")
stops = []
for feat in pointLayer.selectedFeatures():
stops.append((feat['stop'], feat.geometry().asPoint()))
#sort by order column
stops.sort(key=lambda x: x[0])
paths = []
for i, (order, point) in enumerate(stops[0:-1]):
endPoint = stops[i + 1][1]
parameters = {'INPUT': networkLayer,
'STRATEGY': 0,
'DIRECTION_FIELD': '',
'VALUE_FORWARD': '',
'VALUE_BACKWARD': '',
'VALUE_BOTH': '',
'DEFAULT_DIRECTION': 2,
'SPEED_FIELD': '',
'DEFAULT_SPEED': 50.0,
'TOLERANCE': 20.0,
'START_POINT': point,
'END_POINT': endPoint,
'OUTPUT': 'memory:'}
path = processing.run('qgis:shortestpathpointtopoint', parameters)['OUTPUT']
paths.append(path)
output = f'{output_folder}/{unique_route}.shp'
pathsMerged = processing.run('qgis:mergevectorlayers',
{'LAYERS': paths,
'OUTPUT': output})['OUTPUT']
vlayer = QgsVectorLayer(pathsMerged, str(unique_route), 'ogr')
QgsProject.instance().addMapLayer(vlayer)

I didn't merge the route layers. You may need to merge them.