Non Clustered Index using INCLUDE
Yes it will work.
It will have some difference in performance but will it be significant or not depends on the indexes usage. Scan operation will become more expensive because an index row is wider on the leaf level. On the other hand you will have one index in your buffer pool instead of three.


I would start from investigating the indexes current usage to make a reasonable decision. 

Check user_seeks, user_scans, user_lookups columns:

    SELECT i.name, s.*,si.*
    FROM sys.dm_db_index_usage_stats s
        JOIN sys.indexes i ON i.object_id = s.object_id
            AND i.index_id = s.index_id
        JOIN sys.sysindexes si ON si.id = i.object_id
            AND si.indid = i.index_id
    WHERE s.object_id = OBJECT_ID('YourTableName')
        AND s.database_id = DB_ID()
    ORDER BY i.name


Check query plans for a particular index:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
DECLARE @IndexName AS NVARCHAR(128) = 'IX1';

SET @IndexName = QUOTENAME(@IndexName); 

-- Dig into the plan cache and find all plans using this index 
;WITH XMLNAMESPACES 
   (DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/showplan')    
SELECT 
DB_NAME(x.dbid),
x.ObjectName,
stmt.value('(@StatementText)[1]', 'varchar(max)') AS SQL_Text, 
obj.value('(@Database)[1]', 'varchar(128)') AS DatabaseName, 
obj.value('(@Schema)[1]', 'varchar(128)') AS SchemaName, 
obj.value('(@Table)[1]', 'varchar(128)') AS TableName, 
obj.value('(@Index)[1]', 'varchar(128)') AS IndexName, 
obj.value('(@IndexKind)[1]', 'varchar(128)') AS IndexKind, 
x.plan_handle, 
x.query_plan 
FROM (
    SELECT try_CONVERT(XML, qp.query_plan) AS query_plan, cp.plan_handle, OBJECT_NAME(qp.objectid, qp.dbid) AS ObjectName, qp.objectid, qp.dbid
    FROM sys.dm_exec_cached_plans AS cp 
        JOIN sys.dm_exec_query_stats s ON s.plan_handle = cp.plan_handle
        cross apply sys.dm_exec_text_query_plan (s.plan_handle, s.statement_start_offset, s.statement_end_offset) AS qp 
) x
CROSS APPLY query_plan.nodes('/ShowPlanXML/BatchSequence/Batch/Statements') AS batch(stmt) 
CROSS APPLY stmt.nodes('.//IndexScan/Object[@Index=sql:variable("@IndexName")]') AS idx(obj) 
OPTION(MAXDOP 1, RECOMPILE);