Dimensionality error when using LSTMs for sequence labelling

I am trying to build a model for sequence tag classification. X_train is of shape (2560, 69), Y_train is (2560, 69, 3)

This is what the architecture looks like:

m = Sequential([
    Embedding(vocab_size + 1, 300 + no_of_pos_tags, weights=[embedding_matrix], input_length=max_len, trainable=False),
    Bidirectional(LSTM(150, activation='relu')),
    Dense(150, activation='relu'),
    Dense(max_len, activation='sigmoid')


Layer (type)                 Output Shape              Param #   
embedding_5 (Embedding)      (None, 69, 334)           1699058   
bidirectional_5 (Bidirection (None, 300)               582000    
dense_9 (Dense)              (None, 150)               45150     
dense_10 (Dense)             (None, 69)                10419     
Total params: 2,336,627
Trainable params: 637,569
Non-trainable params: 1,699,058

The loss is categorical_crossentropy.
When I try to fit my data, this is the error thrown:
Error when checking target: expected dense_10 to have 2 dimensions, but got array with shape (2560, 69, 3)

I tried adding a Flatten layer before the first Dense layer but that results in Input 0 is incompatible with layer flatten_3: expected min_ndim=3, found ndim=2

I am not sure how to fix the dimensions. Has anyone ran into this kind of an error before?