Operating on large number of dataframes
If all of your data has the same shape, then I don't see the point of using lists of pandas DataFrames for this.
The most performance you could get out of Python with the least work is just stacking the dataframes into a 3D Numpy array of dimensions (3000, 3000, 5000) and then doing an sum over the last axis.
As this requires > 360 GB of RAM (at least 180 GB for the loaded dataframes, 180 GB for the stacked Numpy array), this is probably beyond a usual Desktop workload, and you may want to check out big data tools as mentioned in the comments.
I have a large number of pandas dataframe > 5000 of shape 3000x3000 float values with density of 60% (i.e. 40% values are NaNs). These frames have identical index and columns. 
I'd like to operate on these frames e.g. addition of all of them. If I do this sequentially, it takes more than 20 mins. Is there efficient way I could operate on them (e.g. sum them)?
How can I make this process memory efficient knowing that these dataframes are not dense?