I would suggest you start by make one Seurat object which you do joint QC and filtering on and a joint clustering (like described in this vignette). To do the sub-clustering you can simply (since you are using Seurat 3 (not Seurat2 or earlier)) use the subset() or the SplitObject() function to respectively subset or create a list with the different Seurat subsets (nice if you subsequently want to do the same analysis to all datasets). You can find example code of how both works here.