Based on the plan you've posted, the bulk of the time is an index scan on dbo.INV_MOVIMIENTOS, with the predicate on mov_Estado_vigencia. With the number of rows you quote, vs the actual rows shown in the plan, it's likely that an index seek will reduce the run time.
Try applying this index:
CREATE INDEX IX_INV_MOVIMIENTOS_mov_Estado_vigencia ON dbo.INV_MOVIMIENTOS (mov_Estado_vigencia);
If this isn't faster (it may not be - the optimiser may not choose to use it, and for good reason - it will cause a lookup), try the heavier index, which includes all the data being selected, and therefore a seek with no lookup.
CREATE INDEX IX_INV_MOVIMIENTOS_mov_Estado_vigencia ON dbo.INV_MOVIMIENTOS (mov_Estado_vigencia)
If you choose this index, you will need to check and be ok with the disk space used. There will also be an overhead when rows are modified (inserted/updated/deleted) - again you will need to determine if that is acceptable for your system.
(You should also check the index isn't overlapping another index that already exists. If it does, you may need to consider dropping the other / merging their goals).