def filters_logical_and(f1, f2, f3):
    """
        given three filters, returns the logical and of these filters
        in the order: f1 AND f2 AND f3.
        
        Parameters:
        -----------
            
            f[1/2/3]: `dict`
                filter expression to be combined.
        
        Returns:
        --------
            
            `dict` with the order-preserving combination of the filters.
    """
    
    if f1 is None and f3 is None:
        return f2
    elif f3 is None:
        return {'$and': [f1, f2]}
    elif f1 is None:
        return {'$and': [f2, f3]}
    else:
        return {'$and': [f1, f2, f3]}